#---------------------------------# 
#      environment configuration  # 
#---------------------------------# 
version: 3.5.{build}.0
install: 
  - cinst -y pester
  - git clone https://github.com/PowerShell/DscResource.Tests
  - ps: Push-Location
  - cd DscResource.Tests
  - ps: Import-Module .\TestHelper.psm1 -force
  - ps: Pop-Location

#---------------------------------# 
#      build configuration        # 
#---------------------------------# 

build: false

#---------------------------------# 
#      test configuration         # 
#---------------------------------# 

test_script:
    - ps: |
        $testResultsFile = ".\TestsResults.xml"
        $tempModulePath = (Resolve-Path (join-path $PWD '..')).ProviderPath
        $env:PSModulePath = "$env:PSModulePath;$tempModulePath"
        $res = Invoke-Pester -OutputFormat NUnitXml -OutputFile $testResultsFile -PassThru
        (New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path $testResultsFile))
        if ($res.FailedCount -gt 0) { 
            throw "$($res.FailedCount) tests failed."
        }
    
#---------------------------------# 
#      deployment configuration   # 
#---------------------------------# 

# scripts to run before deployment 
before_deploy: 
  - ps: |
      # Creating project artifact
      $stagingDirectory = (Resolve-Path ..).Path
      $manifest = Join-Path $pwd "xPSDesiredStateConfiguration.psd1"
      (Get-Content $manifest -Raw).Replace("3.5.0.0", $env:APPVEYOR_BUILD_VERSION) | Out-File $manifest
      $zipFilePath = Join-Path $stagingDirectory "$(Split-Path $pwd -Leaf).zip"
      Add-Type -assemblyname System.IO.Compression.FileSystem
      [System.IO.Compression.ZipFile]::CreateFromDirectory($pwd, $zipFilePath)
      
      # Creating NuGet package artifact
      New-Nuspec -packageName $env:APPVEYOR_PROJECT_NAME -version $env:APPVEYOR_BUILD_VERSION -author "Microsoft" -owners "Microsoft" -licenseUrl "https://github.com/PowerShell/DscResources/blob/master/LICENSE" -projectUrl "https://github.com/$($env:APPVEYOR_REPO_NAME)" -packageDescription $env:APPVEYOR_PROJECT_NAME -tags "DesiredStateConfiguration DSC DSCResourceKit" -destinationPath .
      nuget pack ".\$($env:APPVEYOR_PROJECT_NAME).nuspec" -outputdirectory .
      $nuGetPackageName = $env:APPVEYOR_PROJECT_NAME + "." + $env:APPVEYOR_BUILD_VERSION + ".nupkg"
      $nuGetPackagePath = (Get-ChildItem $nuGetPackageName).FullName
      
      @(
          # You can add other artifacts here
          $zipFilePath,
          $nuGetPackagePath
      ) | % { 
          Write-Host "Pushing package $_ as Appveyor artifact"
          Push-AppveyorArtifact $_
        }
        
        


